package com.frinder.robot.handler.wrapper;

import com.frinder.robot.handler.task.RobotTask;
import lombok.Getter;
import lombok.ToString;

import java.util.Optional;
import java.util.concurrent.atomic.AtomicBoolean;

/**
 * @ClassName RobotWrapper
 * @Description 机器人包装器
 * @Author frinder
 * @Date 2019/10/21 14:00
 * @Verion 1.0
 */
@Getter
@ToString
public class RobotWrapper {

    private String robotName;

    /**
     * 默认空
     */
    private Optional<RobotTask> task = Optional.empty();

    public RobotWrapper(String robotName) {
        this.robotName = robotName;
    }

    /**
     * 添加任务
     *
     * @param task
     */
    public void addTask(RobotTask task) {
        this.task = Optional.ofNullable(task);
    }

    /**
     * 清空任务
     */
    public void clearTask() {
        this.task = Optional.empty();
    }

    /**
     * 任务是否为空
     *
     * @return
     */
    public boolean emptyTask() {
        // 默认任务为空
        AtomicBoolean empty = new AtomicBoolean(true);
        // 判断是否存在任务
        this.task.ifPresent(o -> empty.set(o.hasNext()));
        return empty.get();
    }
}
